跳到主要内容

Linux 的 FHS 目录配置规范

所谓的 FHS(Filesystem Hierarchy Standard) 规范,其实就是用来规范根目录 / 下各个主要目录应该放什么文件。FHS 规定了两层规范:

第 1 层是根目录下面的各个目录应该放什么文件,例如 /etc 应该放配置文件,/bin/sbin 则应该放可执行文件等。

第 2 层则针对 /usr/var 这两个目录的子目录来定义,例如 /var/log 放系统登陆文件。/usr/share 放共享数据等。

Linux使用规范的目录结构,系统安装时就已经创建了完整而规定的目录结构,并且指定了每个目录的作用和存放的文件类型。常见的目录结构介绍如下:

路径介绍
/bin存放用于系统管理维护的常用的实用命令文件。
/boot存放用于系统启动的内核文件和引导装载程序文件。
/dev存放设备文件。
/etc存放系统配置文件,如网络配置、设备配置、X Window 系统配置等。
/home各个用户的主目录,其中子目录名称即为各用户名。
/lib存放动态链接共享库。(类似于 win 的 *.dll 文件)
/media为光盘、软盘等设备提供默认挂载点。
/mnt为某些设备提供默认挂载点。
/rootroot 用户主目录。(不要与根目录混淆)
/proc系统自动产生的映射。查看该目录的文件可以获得系统硬件运行的信息。
/sbin存放系统管理员或者 root 用户使用的命令文件。
/usr存放应用程序和文件。
/var保存经常变化的内容,如系统日志、打印。

/usr 目录

usr 其实是 UNIX Software Resource 的全称,即 UNIX 操作系统软件资源。

FHS 建议所有软件开发者都应该将数据合理地放置到这个目录的子目录下。

一般来说,/usr 下的子目录有:

  • /usr/bin/:绝大部分的用户命令都在此处,它与/bin目录的区别在于后者存放与开机相关的命令。
  • /usr/include/:C/C++的头文件和包含文件。
  • /usr/lib/:包含各应用软件的函数库、目标文件,以及一些不被用户惯用的执行文件。
  • /usr/local/:系统管理员在本机自行下载的软件。
  • /usr/sbin/:非系统正常运行需要的系统命令。
  • /usr/share/:放置共享文件的地方
  • /usr/src/:源码放置的地方

/var 目录

/var 目录下主要放置常态化变动的文件,例如缓存、登录日志文件、软件运行产生的文件等。

/var 下的子目录常见有:

  • /var/cache/:应用程序运行过程中产生的暂存文件。
  • /var/lib/:应用程序运行过程中,需要使用到的数据文件放置的目录。
  • /var/lock/:某些设备或文件要求使用时具有排他性,即上锁,该目录存放这类设备文件。
  • /var/log/:日志或登录文件放置的目录。
  • /var/mail/:放置个人电子邮件的目录。
  • /var/run/:某些程序或者是服务启动后,将它们的 PID 记录在这个目录下
  • /var/spool/:这个目录通常会放置一些队列数据,包括等待收寄的电子邮件、cron 任务等。

挂载点以及大小分配

分区类型介绍备注
/boot启动分区一般设置100M-200M,boot目录包含了操作系统的内核和在启动系统过程中所要用到的文件。
/根分区所有未指定挂载点的目录都会放到这个挂载点下。
/home用户目录一般每个用户100M左右,特殊用途,比如放大文件也可再加上G。分区大小取决于用户多少。对于多用户使用的电脑,建议把 /home 独立出来,而且还可以很好地控制普通用户权限等,比如对用户或者用户组实行磁盘配额限制、用户权限访问等。
/tmp临时文件一般设置1-5G,方便加载ISO镜像文件使用,对于多用户系统或者网络服务器来也有独立挂载的必要。临时文件目录,也是最常出现问题的目录之一。
/usr文件系统一般设置要3-15G,大部分的用户安装的软件程序都在这里。就像是 Windows 目录和 Program Files 目录。很多Linux家族系统有时还会把 /usr/local 单独作为挂载点使用。
/var可变数据目录包含系统运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化的,系统日志记录也在 /var/log 下。一般多用户系统或者网络服务器要建立这个分区,设立这个分区,对系统日志的维护很有帮助。一般设置2-3G大小,也可以把硬盘余下空间全部分为var。
/srv系统服务目录用来存放 service 服务启动所需的文件资料目录,不常改变。
/opt附加应用程序存放可选的安装文件,个人一般把自己下载的软件资料存在里面,比如Office、QQ等等。
swap交换分区一般为内存2倍,最大指定2G即可
/bin二进制可执行目录存放二进制可执行程序,里面的程序可以直接通过命令行调用,而不需要进入程序所在的文件夹。
/sbin系统管理员命令存放目录存放标准系统管理员文件
/dev存放设备文件驱动文件等

References

鸟哥的 Linux-Linux 目录配置 Linux目录配置与FHS标准 - 多面手程序员的文章 - 知乎 Linux目录配置标准---FHS